/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery", function(e) {
    "use strict";
    var a = layui.jquery
      , i = {
        config: {},
        index: layui.rate ? layui.rate.index + 1e4 : 0,
        set: function(e) {
            var i = this;
            return i.config = a.extend({}, i.config, e),
            i
        },
        on: function(e, a) {
            return layui.onevent.call(this, n, e, a)
        }
    }
      , l = function() {
        var e = this
          , a = e.config;
        return {
            setvalue: function(a) {
                e.setvalue.call(e, a)
            },
            config: a
        }
    }
      , n = "rate"
      , t = "layui-rate"
      , o = "layui-icon-rate"
      , s = "layui-icon-rate-solid"
      , u = "layui-icon-rate-half"
      , r = "layui-icon-rate-solid layui-icon-rate-half"
      , c = "layui-icon-rate-solid layui-icon-rate"
      , f = "layui-icon-rate layui-icon-rate-half"
      , v = function(e) {
        var l = this;
        l.index = ++i.index,
        l.config = a.extend({}, l.config, i.config, e),
        l.render()
    };
    v.prototype.config = {
        length: 5,
        text: !1,
        readonly: !1,
        half: !1,
        value: 0,
        theme: ""
    },
    v.prototype.render = function() {
        var e = this
          , i = e.config
          , l = i.theme ? 'style="color: ' + i.theme + ';"' : "";
        i.elem = a(i.elem),
        parseInt(i.value) !== i.value && (i.half || (i.value = Math.ceil(i.value) - i.value < .5 ? Math.ceil(i.value) : Math.floor(i.value)));
        for (var n = '<ul class="layui-rate" ' + (i.readonly ? "readonly" : "") + ">", u = 1; u <= i.length; u++) {
            var r = '<li class="layui-inline"><i class="layui-icon ' + (u > Math.floor(i.value) ? o : s) + '" ' + l + "></i></li>";
            i.half && parseInt(i.value) !== i.value && u == Math.ceil(i.value) ? n = n + '<li><i class="layui-icon layui-icon-rate-half" ' + l + "></i></li>" : n += r
        }
        n += "</ul>" + (i.text ? '<span class="layui-inline">' + i.value + "星" : "") + "</span>";
        var c = i.elem
          , f = c.next("." + t);
        f[0] && f.remove(),
        e.elemTemp = a(n),
        i.span = e.elemTemp.next("span"),
        i.setText && i.setText(i.value),
        c.html(e.elemTemp),
        c.addClass("layui-inline"),
        i.readonly || e.action()
    }
    ,
    v.prototype.setvalue = function(e) {
        var a = this
          , i = a.config;
        i.value = e,
        a.render()
    }
    ,
    v.prototype.action = function() {
        var e = this
          , i = e.config
          , l = e.elemTemp
          , n = l.find("i").width();
        l.children("li").each(function(e) {
            var t = e + 1
              , v = a(this);
            v.on("click", function(e) {
                if (i.value = t,
                i.half) {
                    var o = e.pageX - a(this).offset().left;
                    o <= n / 2 && (i.value = i.value - .5)
                }
                i.text && l.next("span").text(i.value + "星"),
                i.choose && i.choose(i.value),
                i.setText && i.setText(i.value)
            }),
            v.on("mousemove", function(e) {
                if (l.find("i").each(function() {
                    a(this).addClass(o).removeClass(r)
                }),
                l.find("i:lt(" + t + ")").each(function() {
                    a(this).addClass(s).removeClass(f)
                }),
                i.half) {
                    var c = e.pageX - a(this).offset().left;
                    c <= n / 2 && v.children("i").addClass(u).removeClass(s)
                }
            }),
            v.on("mouseleave", function() {
                l.find("i").each(function() {
                    a(this).addClass(o).removeClass(r)
                }),
                l.find("i:lt(" + Math.floor(i.value) + ")").each(function() {
                    a(this).addClass(s).removeClass(f)
                }),
                i.half && parseInt(i.value) !== i.value && l.children("li:eq(" + Math.floor(i.value) + ")").children("i").addClass(u).removeClass(c)
            })
        })
    }
    ,
    v.prototype.events = function() {
        var e = this;
        e.config
    }
    ,
    i.render = function(e) {
        var a = new v(e);
        return l.call(a)
    }
    ,
    e(n, i)
});
